/*
* Copyright (c) 2023 Hunan OpenValley Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

import 'power_image_request.dart';

List<Map<String, dynamic>?> encodeRequests(List<PowerImageRequest> requests) {
  List<Map<String, dynamic>?> encodedTasks = requests
      .map<Map<String, dynamic>?>(
          (PowerImageRequest request) => request.encode())
      .toList();
  return encodedTasks;
}

abstract class PowerImageChannelImpl {
  void setup();

  void startImageRequests(List<PowerImageRequest> requests);

  void releaseImageRequests(List<PowerImageRequest> requests);
}

class PowerImageChannel {

  PowerImageChannelImpl? impl;

  void setup() {
    impl!.setup();
  }

  void startImageRequests(List<PowerImageRequest> requests) async {
    impl!.startImageRequests(requests);
  }

  void releaseImageRequests(List<PowerImageRequest> requests) async {
    impl!.releaseImageRequests(requests);
  }
}
